在VS2019 for Mac 下使用Scaffold功能
這一篇算是另外加的
因為發現在Mac上操作有點不太相同
因此整理成一篇筆記整理一下
已經習慣VS2019在windows上操作的人
對於轉到mac來一開始多少會有點不習慣
今天筆記一下在Mac 上使用Scaffold 快速建立CRUD需要注意的一些事項
先建立一個叫做Moive的class在專案的Model下
這裡有三個套件需要另外安裝
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
在專案下新增一個Data的資料夾
新增一支MvcMovieContext.cs
Data/MvcMovieContext.cs
由於ASP .NET Core都是使用DI去注入相關的服務
在這裡也需要在Startup.cs 註冊我們的DB
一開始必須引入上一部建立的DBContext
以及Microsoft.EntityFrameworkCore
Startup.cs
using TestDotNetCli.Data;
using Microsoft.EntityFrameworkCore;
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("MvcMovieContext")));
}
並在appsettings.json 新增加連接字串
"ConnectionStrings": {
"MvcMovieContext": "Data Source=TestDotNetCli.db"
}
這一步根據官方的說明
Mac環境上直接使用dotnet cli執行以下指令
但實際試過之後
發現環境上有少東西出現以下錯誤
解決辦法
執行下列指令,安裝後即可
dotnet tool install --global dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
執行migration動作
如果圖同樣出現缺了 ef 的元件也要另外安裝
dotnet tool install --global dotnet-ef
dotnet ef migrations add InitialCreate
dotnet ef database update
根據官網的說明
aspnet-codegenerator就可以建立出對應的controll和view
同樣也可以利用VS2019裡面的UI操作
(VS2019 for mac的一開始實在是有點難找不太習慣)
同樣也可以選擇要哪個範本
執行畫面
參考資料
https://manojchoudhari.wordpress.com/2020/01/09/net-core-3-and-entity-framework-core-migrations/